package org.example.likou150.array;

import java.util.Arrays;

/*
* https://leetcode.cn/problems/h-index/?envType=study-plan-v2&envId=top-interview-150
* */
public class HIndex {
    public static void main(String[] args) {

int[] nums=new int[] {3,0,6,1,5};
        HIndex hIndex=new HIndex();
        System.out.println(hIndex.hIndex(nums));
    }

    public int hIndex(int[] citations) {
        Arrays.sort(citations);
        int h=0;
        for(int i=citations.length-1; i>=0; i--){
            if(citations[i]>h){
                h++;
                continue;
            }
            break;
        }
        return h;
    }


    /**
     *
    * 对空间比较友好。
    * */
//    public int hIndex(int[] citations) {
//        int h=citations.length;
//        while(h>0){
//            if(check(h,citations)){
//               return h;
//            }else {
//                h--;
//            }
//        }
//        return h;
//    }
//
//    boolean check(int h,int[] citations){
//        int count=0;
//        for (int i=0; i < citations.length; i++){
//            if(citations[i] >= h){
//                count++;
//            }
//        }
//        return count>=h;
//    }

    /**
    * 涉及到排序就是 nlogn 慢！
    * */
//    public int hIndex(int[] citations) {
//        Arrays.sort(citations);
//        int h=0;
//        for(int i=citations.length-1; i>=0; i--){
//            if(citations[i]>h){
//                h++;
//            }
//        }
//        return h;
//    }
}
